home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 2 / MacMania 2.toast / Demo's / Tools&Utilities / Programming / PowerLisp 1.1 / Library / describe.lisp < prev    next >
Encoding:
Text File  |  1994-03-25  |  1.5 KB  |  54 lines  |  [TEXT/ROSA]

  1. ;;;
  2. ;;;        Copyright © 1994 Roger Corman.  All rights reserved.
  3. ;;;
  4.  
  5. ;
  6. ;    File:        describe.lisp
  7. ;    Contents:    describe implementation for PowerLisp.
  8. ;
  9. (in-package :common-lisp)
  10. (provide :describe)
  11.  
  12. (defun %describe (obj &optional (stream *standard-output*))
  13.     (typecase obj
  14.         (symbol     (describe-symbol obj stream))
  15.         (cons        (describe-cons obj stream))
  16.         (package     (describe-package obj stream))
  17.         (t            (format  stream 
  18.                         "Sorry, no information available for: ~A" obj))))
  19.         
  20. (defun describe-symbol (obj stream &aux value-list)
  21.     (setq value-list (%symbol-value-stack obj))
  22.     (format stream "~%Symbol: ~A~%" obj)
  23.     (format stream "Print name: ~A~%" (symbol-name obj))
  24.     (format stream "Value: ~A~%" (car value-list))
  25.     (format stream "Dynamic values stack: ~A~%" value-list)
  26.     (format stream "Package: ~A~%" (symbol-package obj))
  27.     (format stream "Property list: ~A~%" (symbol-plist obj))
  28.     (format stream "Function: ~A~%" (symbol-function obj))
  29.     (format stream "Constant flag: ~A~%" (if (constantp obj) t nil)))
  30.     
  31. (defun describe-cons (obj stream)
  32.     (format stream "~%Cons cell:~%")
  33.     (format stream "Car: ~A~%" (car obj))
  34.     (format stream "Cdr: ~A~%" (cdr obj)))
  35.     
  36. (defun describe-package (obj stream)
  37.     (format stream "~%Package:~%")
  38.     (format stream "Name: ~A~%" (package-name obj))
  39.     (format stream "Nicknames: ~A~%" (package-nicknames obj))
  40.     (format stream "Use list: ~A~%" (package-use-list obj))
  41.     (format stream "Used by list: ~A~%" (package-used-by-list obj))
  42.     (format stream "Shadowing symbols: ~A~%" (package-shadowing-symbols obj)))
  43.     
  44.  
  45.     
  46.     
  47.     
  48.     
  49.     
  50.     
  51.     
  52.  
  53.  
  54.